package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.Goods;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author lfh
 * @version 1.0
 * @date 2021/5/13 14:05
 */
public interface GoodsDao {
    // 查询当前库存（可根据商品类别、商品编码或名称搜索）
    List<Goods> getGoodsList(@Param("offSet") Integer offSet,@Param("rows") Integer rows,@Param("codeOrName") String codeOrName,@Param("goodsTypeId") Integer goodsTypeId);

    // 根据分类、名称查询所有商品信息
    List<Goods> getListGoods(Integer offSet, Integer rows, String goodsName, Integer goodsTypeId);

    // 添加商品
    void saveGoods(Goods goods);

    // 修改商品
    void updateGoods(Goods goods);
    // 无库存商品列表展示（可以根据商品名称或编码查询）
    List<Goods> getNoInventoryQuantity(@Param("offSet")Integer offSet,@Param("rows") Integer rows,@Param("nameOrCode") String nameOrCode);

    // 有库存商品列表展示
    List<Goods> getHasInventoryQuantity(@Param("offSet")Integer offSet,@Param("rows") Integer rows,@Param("nameOrCode") String nameOrCod);

    // 添加库存、修改数量或成本价
    void saveStock(@Param("goodsId") Integer goodsId,@Param("inventoryQuantity") Integer inventoryQuantity,@Param("purchasingPrice") double purchasingPrice);


    // 根据Id 删除库存
    void updateGoodsById(@Param("goodsId") Integer goodsId);


    String maxCode();

    void deleteGoods(Integer goodsId);

    Goods getGoodsById(Integer goodsId);

    // 查询所有 当前库存量 小于 库存下限的商品信息
    List<Goods> listAlarm();
}
